# Introduction #

Программный модуль находится в файле `game/prod.php`

**!** Этот движок хорошо продуман, расчёты проверены и полностью совпадают с оригиналом.

# API #

Программный интерфейс незамысловатый.

Таблица **`$initial`** : содержит стоимость игровых объектов первого уровня, используется в процедурах `XXXPrice`

| **id** | **Название** | **Тип** | **Металл** | **Кристалл** | **Дейтерий** | **Энергия** |
|:-------|:---------------------|:-----------|:-----------------|:---------------------|:---------------------|:-------------------|
|14| Фабрика роботов|Постройка|400|120|200|0 |
|15| Фабрика нанитов|Постройка|1.000.000|500.000|100.000|0 |
|21| Верфь|Постройка|400|200|100|0 |
|22| Хранилище металла|Постройка|2000|0 |0 |0 |
|23| Хранилище кристалла|Постройка|2000|1000|0 |0 |
|24| Ёмкость для дейтерия|Постройка|2000|2000|0 |0 |
|31| Исследовательская лаборатория|Постройка|200|400|200|0 |
|33| Терраформер|Постройка|0 |50.000|100.000|1000|
|34| Склад альянса|Постройка|20000|40000|0 |0 |
|44| Ракетная шахта|Постройка|20000|20000|1000|0 |
|41| Лунная база|Постройка (Луна)|20000|40000|20000|0 |
|42| Сенсорная фаланга|Постройка (Луна)|20000|40000|20000|0 |
|43| Ворота|Постройка (Луна)|2.000.000|4.000.000|2.000.000|0 |
|202| Малый транспорт|Флот|2000|2000|0 |0 |
|203| Большой транспорт|Флот|6000|6000|0 |0 |
|204| Лёгкий истребитель|Флот|3000|1000|0 |0 |
|205| Тяжёлый истребитель|Флот|6000|4000|0 |0 |
|206| Крейсер|Флот|20000|7000|2000|0 |
|207| Линкор|Флот|45000|15000|0 |0 |
|208| Колонизатор|Флот|10000|20000|10000|0 |
|209| Переработчик|Флот|10000|6000|2000|0 |
|210| Шпионский зонд|Флот|0 |1000|0 |0 |
|211| Бомбардировщик|Флот|50000|25000|15000|0 |
|212| Солнечный спутник|Флот|0 |2000|500|0 |
|213| Уничтожитель|Флот|60000|50000|15000|0 |
|214| Звезда смерти|Флот|5.000.000|4.000.000|1.000.000|0 |
|215| Линейный крейсер|Флот|30000|40000|15000|0 |
|401| Ракетная установка|Оборона|2000|0 |0 |0 |
|402| Лёгкий лазер|Оборона|1500|500|0 |0 |
|403| Тяжёлый лазер|Оборона|6000|2000|0 |0 |
|404| Пушка Гаусса|Оборона|20000|15000|2000|0 |
|405| Ионное орудие|Оборона|2000|6000|0 |0 |
|406| Плазменное орудие|Оборона|50000|50000|30000|0 |
|407| Малый щитовой купол|Оборона|10000|10000|0 |0 |
|408| Большой щитовой купол|Оборона|50000|50000|0 |0 |
|502| Ракета-перехватчик|Оборона|8000|0 |2000|0 |
|503| Межпланетная ракета|Оборона|12500|2500|10000|0 |
|106| Шпионаж|Исследование|200|1000|200|0 |
|108| Компьютерная технология|Исследование|0 |400|600|0 |
|109| Оружейная технология|Исследование|800|200|0 |0 |
|110| Щитовая технология|Исследование|200|600|0 |0 |
|111| Броня космических кораблей|Исследование|1000|0 |0 |0 |
|113| Энергетическая технология|Исследование|0 |800|400|0 |
|114| Гиперпространственная технология|Исследование|0 |4000|2000|0 |
|115| Реактивный двигатель|Исследование|400|0 |600|0 |
|117| Импульсный двигатель|Исследование|2000|4000|600|0 |
|118| Гиперпространственный двигатель|Исследование|10000|20000|6000|0 |
|120| Лазерная технология|Исследование|200|100|0 |0 |
|121| Ионная технология|Исследование|1000|300|100|0 |
|122| Плазменная технология|Исследование|2000|4000|1000|0 |
|123| Межгалактическая исследовательская сеть|Исследование|240.000|400.000|160.000|0 |
|124| Экспедиционная технология|Исследование|4000|8000|4000|0 |
|199| Гравитационная технология|Исследование|0 |0 |0 |300.000|

**`BuildMeetRequirement`** : проверяет можно ли построить постройку `$id` на планете `$planet` игрока `$user`. Возвращает TRUE/FALSE

**`BuildPrice`** : возвращает стоимость постройки `$id` (Металл/Кристалл/Дейтерий/Энергия) уровня `$lvl`

**`BuildDuration`** : Время строительства постройки `$id` уровня `$lvl` в секундах.

**`ShipyardMeetRequirement`** : проверяет можно ли построить флот/оборону `$id` на Верфи на планете `$planet` игрока `$user`. Возвращает TRUE/FALSE

**`ShipyardPrice`** : Стоимость флота/обороны на Верфи

**`ShipyardDuration`** : Длительность постройки флота/обороны

**`ResearchMeetRequirement`** : проверяет, можно ли начать исследование на планете

**`ResearchPrice`** : стоимость исследования

**`ResearchDuration`** : длительность исследования

**`BuildDurationFormat`** : форматирует количество секунд в строку, вида "9д 4ч 6м"

**`IsEnoughResources`** : проверяет, достаточно ли указанного количества ресурсов на планете

**Всё что связано с добычей и подсчетом ресурсов**

**`store_capacity`** : Вместимость хранилищ

**`prod_solar`** : Выработка энергии СЭС

**`prod_fusion`** : Выработка энергии термоядом

**`prod_sat`** : Выработка энергии солн. спутниками

**`prod_metal`** : Выработка шахты металла

**`prod_crys`** : Выработка шахты кристалла

**`prod_deut`** : Выработка шахты дейтерия

**`cons_metal`** : Потребление энергии шахтой металла

**`cons_crys`** : Потребление энергии шахтой кристалл

**`cons_deut`** : Потребление энергии шахтой дейтерия

**`cons_fusion`** : Потребление дейтерия термоядом

**`ProdResources`** : Расчитать прирост ресурсов на планете `$planet_id` от времени `$time_from`, до времени `$time_to`. Ограничить емкостью хранилищ. Эта процедура работает с таблицей БД `planets`